/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package sape;

import Informacion.PuestoDeTrabajo.Vista.AgregarPuestoDeTrabajo;
import Informacion.PuestoDeTrabajo.Vista.PuestoDeTrabajo;
import Informacion.Usuarios.BEAN.UsuarioBEAN;
import Informacion.Usuarios.Vista.Usuarios;
import Informacion.Usuarios.Vista.VerUsuarios;
import Necesidad.Clientes.Vista.FiltrosClientes;
import Necesidad.Conductores.Vista.FiltrosConductores;
import Necesidad.Encuestas.Vista.FiltrosEncuestas;
import Necesidad.Incidencias.Vista.FiltrosIncidencias;
import Necesidad.Pedidos.Vista.FiltrosPedidos;
import Necesidad.SimularNecesidades.Vista.FiltrosSimularNecesidades;
import Necesidad.Ventas.Vista.FiltrosVentas;
import Pedidos.Cliente.Vista.AgregarCliente;
import Pedidos.Incidente.Vista.Incidente;
import Pedidos.Pedido.Vista.ClientePedido;
import Pedidos.Pedido.Vista.Pedido;
import Pedidos.Producto.Vista.AgregarProducto;
import Pedidos.Producto.Vista.Producto;
import Planificacion.GenerarPlanEnvio.Vista.GenerarPlanEnvio;
import Seguridad.ConfiguracionDelSistema.Vista.ConfiguracionDelSistema;
import Seguridad.LogAcciones.BEAN.LogBEAN;
import Seguridad.LogAcciones.DAO.LogAccionesDAO;
import Seguridad.LogAcciones.Vista.FiltrosLogAcciones;
import Seguridad.Perfil.Vista.Perfil;
import Seguridad.Usuario.DAO.PrivilegiosDAO;
import java.beans.PropertyVetoException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.UIManager;
import java.util.Date;

/**
 *
 * @author Diego
 */
public class MenuControlador extends Controlador{
     public Menu3 vista;
     public Object controlador_interno=null;
     public UsuarioBEAN usuario=null;
    public MenuControlador(Menu3 vista){
        this.vista=vista;   
        
    }

   public MenuControlador(Menu3 vista, UsuarioBEAN usuario) {
       this.vista=vista;
       this.usuario=usuario;
    }
    
    boolean validarAcceso(int idVista){
        //return true;
        boolean rpta=PrivilegiosDAO.getPermiso(this.usuario.getId(), idVista);
        if(rpta){
            this.logAcceso(idVista);
        }
        return rpta;
    }
    void logAcceso(int idVista){
        LogBEAN log=new LogBEAN(usuario.getId(), 1,0, idVista, new Date());
        LogAccionesDAO.agregarLog(log);
        System.out.println("PRUEBA LOG");
    }


    

    /* paquete mantenimiento*/
  
    void abrirPuesto() {    //1 
        
        if(!this.validarAcceso(1))return;
        this.vista.dkpEscritorio.removeAll();
        PuestoDeTrabajo new_vista = new PuestoDeTrabajo(this);
        this.vista.dkpEscritorio.add(new_vista);
        new_vista.setVisible(true);
        controlador_interno = new_vista.controlador;
         try {
            new_vista.setMaximum(true);                       
        }catch (Exception e){            
        }
        //new_vista.setSize(this.vista.dkpEscritorio.getSize());
    }
    void abrirUsuario() {   //2
        if(!this.validarAcceso(2))return;
        this.vista.dkpEscritorio.removeAll();
        Usuarios new_vista = new Usuarios(this);        
        this.vista.dkpEscritorio.add(new_vista);
        new_vista.setVisible(true);
        controlador_interno = new_vista.controlador;
         try {
            new_vista.setMaximum(true);
              //  Menu3.setDefaultLookAndFeelDecorated(true);
              //  JDialog.setDefaultLookAndFeelDecorated(true);
              //  UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
             
        }catch (Exception e){
            
        }
        //new_vista.setSize(this.vista.dkpEscritorio.getSize());
         
        
    }
    void abrirProducto() {      //3
        if(!this.validarAcceso(3))return;
         this.vista.dkpEscritorio.removeAll();
        Producto new_vista = new Producto(this);
        this.vista.dkpEscritorio.add(new_vista);
        new_vista.setVisible(true);
        controlador_interno = new_vista.controlador;
         try {
            new_vista.setMaximum(true);                       
        }catch (Exception e){            
        }
        //new_vista.setSize(this.vista.dkpEscritorio.getSize());
    }
    void abrirConfiguracion() { //4
        if(!this.validarAcceso(4))return;
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }
    void abrirCambiarPass() {      //3
        if(!this.validarAcceso(3))return;
         this.vista.dkpEscritorio.removeAll();
        CambiarPass new_vista = new CambiarPass(this);
        this.vista.dkpEscritorio.add(new_vista);
        new_vista.setVisible(true);
        controlador_interno = new_vista.controlador;
        new_vista.setSize(this.vista.dkpEscritorio.getSize());
    }    
        /*paquete planificacion*/
    void abrirPlanEnvio() {     //5
        if(!this.validarAcceso(5))return;
        this.vista.dkpEscritorio.removeAll();
        GenerarPlanEnvio new_vista = new GenerarPlanEnvio(this);
        this.vista.dkpEscritorio.add(new_vista);
        new_vista.setVisible(true);
        controlador_interno = new_vista.controlador;
         try {
            new_vista.setMaximum(true);                       
        }catch (Exception e){            
        }
        //new_vista.setSize(this.vista.dkpEscritorio.getSize());
    }
    
    
        void abrirPedido() {    //6
        if(!this.validarAcceso(6))return;
        this.vista.dkpEscritorio.removeAll();
        Pedido new_vista = new Pedido(this);
        this.vista.dkpEscritorio.add(new_vista);
        new_vista.setVisible(true);
        controlador_interno = new_vista.controlador;
        //new_vista.setSize(this.vista.dkpEscritorio.getSize());
       try {
            new_vista.setMaximum(true);                       
        }catch (Exception e){            
        }
    }

    void abrirIncidencia() {    //7
        if(!this.validarAcceso(7))return;
        this.vista.dkpEscritorio.removeAll();
        Incidente new_vista = new Incidente(this);
        this.vista.dkpEscritorio.add(new_vista);
        new_vista.setVisible(true);
        controlador_interno = new_vista.controlador;
         try {
            new_vista.setMaximum(true);                       
        }catch (Exception e){            
        }
        //new_vista.setSize(this.vista.dkpEscritorio.getSize());
    }
    
    void abrirMonitoreo() {    //8
        if(!this.validarAcceso(8))return;
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }
    
    
    void abrirFiltrosClientes() {   //9
        if(!this.validarAcceso(9))return;
        this.vista.dkpEscritorio.removeAll();
        FiltrosClientes new_vista = new FiltrosClientes(this);
        this.vista.dkpEscritorio.add(new_vista);
        new_vista.setVisible(true);
        controlador_interno = new_vista.controlador;
         try {
            new_vista.setMaximum(true);                       
        }catch (Exception e){            
        }
        //new_vista.setSize(this.vista.dkpEscritorio.getSize());
    }

     void abrirFiltrosConductores() {   //10
         if(!this.validarAcceso(10))return;
        this.vista.dkpEscritorio.removeAll();
        FiltrosConductores new_vista = new FiltrosConductores(this);
        this.vista.dkpEscritorio.add(new_vista);
        new_vista.setVisible(true);
        controlador_interno = new_vista.controlador;
         try {
            new_vista.setMaximum(true);                       
        }catch (Exception e){            
        }
        //new_vista.setSize(this.vista.dkpEscritorio.getSize());
    }

    void abrirFiltrosEncuestas() {  //11
        if(!this.validarAcceso(11))return;
        this.vista.dkpEscritorio.removeAll();
        FiltrosEncuestas new_vista = new FiltrosEncuestas(this);
        this.vista.dkpEscritorio.add(new_vista);
        new_vista.setVisible(true);
        controlador_interno = new_vista.controlador;
         try {
            new_vista.setMaximum(true);                       
        }catch (Exception e){            
        }
        //new_vista.setSize(this.vista.dkpEscritorio.getSize());
    }

    void abrirFiltrosIncidencias() {    //12
        if(!this.validarAcceso(12))return;
        this.vista.dkpEscritorio.removeAll();
        FiltrosIncidencias new_vista = new FiltrosIncidencias(this);
        this.vista.dkpEscritorio.add(new_vista);
        new_vista.setVisible(true);
        controlador_interno = new_vista.controlador;
         try {
            new_vista.setMaximum(true);                       
        }catch (Exception e){            
        }
        //new_vista.setSize(this.vista.dkpEscritorio.getSize());
    }

    void abrirFiltrosPedidos() {        //13
        if(!this.validarAcceso(13))return;
        this.vista.dkpEscritorio.removeAll();
        FiltrosPedidos new_vista = new FiltrosPedidos(this);
        this.vista.dkpEscritorio.add(new_vista);
        new_vista.setVisible(true);
        controlador_interno = new_vista.controlador;
         try {
            new_vista.setMaximum(true);                       
        }catch (Exception e){            
        }
        //new_vista.setSize(this.vista.dkpEscritorio.getSize());
    }

    void abrirFiltrosVentas() {     //14
        if(!this.validarAcceso(14))return;
        this.vista.dkpEscritorio.removeAll();
        FiltrosVentas new_vista = new FiltrosVentas(this);
        this.vista.dkpEscritorio.add(new_vista);
        new_vista.setVisible(true);
        controlador_interno = new_vista.controlador;
         try {
            new_vista.setMaximum(true);                       
        }catch (Exception e){            
        }
        //new_vista.setSize(this.vista.dkpEscritorio.getSize());
    }
     void abrirSimulacion() {       //15
         if(!this.validarAcceso(15))return;
        this.vista.dkpEscritorio.removeAll();
        FiltrosSimularNecesidades new_vista = new FiltrosSimularNecesidades(this);
        this.vista.dkpEscritorio.add(new_vista);
        new_vista.setVisible(true);
        controlador_interno = new_vista.controlador;
         try {
            new_vista.setMaximum(true);                       
        }catch (Exception e){            
        }
        //new_vista.setSize(this.vista.dkpEscritorio.getSize());
    }  

 
    /*paquete seguridad*/
     
    void abrirLogAcciones() {   //16
        if(!this.validarAcceso(16))return;
        this.vista.dkpEscritorio.removeAll();
        FiltrosLogAcciones new_vista=new FiltrosLogAcciones(this);
        this.vista.dkpEscritorio.add(new_vista);
        new_vista.setVisible(true);
        controlador_interno=new_vista.controlador;
         try {
            new_vista.setMaximum(true);                       
        }catch (Exception e){            
        }
        //new_vista.setSize(this.vista.dkpEscritorio.getSize());
    }

        void abrirConfiguraciones() {   //17
            if(!this.validarAcceso(17))return;
        this.vista.dkpEscritorio.removeAll();
        ConfiguracionDelSistema new_vista=new ConfiguracionDelSistema(this);
        this.vista.dkpEscritorio.add(new_vista);
        new_vista.setVisible(true);
        controlador_interno=new_vista.controlador;
         try {
            new_vista.setMaximum(true);                       
        }catch (Exception e){            
        }
        //new_vista.setSize(this.vista.dkpEscritorio.getSize());
    }

    /* paquete necesidad*/



   

    public void cerrarVista() {
        this.vista.dkpEscritorio.removeAll();
    }
    public void abrirVista(Perfil new_vista){
    this.vista.dkpEscritorio.add(new_vista);
      this.controlador_interno=new_vista.controlador;
      new_vista.setVisible(true);        
      new_vista.setSize(this.vista.dkpEscritorio.getSize());
    }
    public void abrirVista(AgregarProducto new_vista) {
        this.vista.dkpEscritorio.add(new_vista);
        this.controlador_interno = new_vista.controlador;
        new_vista.setVisible(true);
         try {
            new_vista.setMaximum(true);                       
        }catch (Exception e){            
        }
        //new_vista.setSize(this.vista.dkpEscritorio.getSize());
    }

    public void abrirVista(Incidente new_vista) {
        this.vista.dkpEscritorio.add(new_vista);
        this.controlador_interno = new_vista.controlador;
        new_vista.setVisible(true);
         try {
            new_vista.setMaximum(true);                       
        }catch (Exception e){            
        }
        //new_vista.setSize(this.vista.dkpEscritorio.getSize());
    }

    public void abrirVista(Pedido new_vista) {
        this.vista.dkpEscritorio.add(new_vista);
        this.controlador_interno = new_vista.controlador;
        new_vista.setVisible(true);
         try {
            new_vista.setMaximum(true);                       
        }catch (Exception e){            
        }
        //new_vista.setSize(this.vista.dkpEscritorio.getSize());
    }

    public void abrirVista(AgregarCliente new_vista) {
        this.vista.dkpEscritorio.add(new_vista);
        this.controlador_interno = new_vista.controlador;
        new_vista.setVisible(true);
         try {
            new_vista.setMaximum(true);                       
        }catch (Exception e){            
        }
        //new_vista.setSize(this.vista.dkpEscritorio.getSize());
    }

    public void abrirVista(AgregarPuestoDeTrabajo new_vista) {
        this.vista.dkpEscritorio.add(new_vista);
        this.controlador_interno = new_vista.controlador;
        new_vista.setVisible(true);
         try {
            new_vista.setMaximum(true);                       
        }catch (Exception e){            
        }
        //new_vista.setSize(this.vista.dkpEscritorio.getSize());
    }

    public void abrirVista(ClientePedido new_vista) {
        this.vista.dkpEscritorio.add(new_vista);
        this.controlador_interno = new_vista.controlador;
        new_vista.setVisible(true);
         try {
            new_vista.setMaximum(true);                       
        }catch (Exception e){            
        }
        //new_vista.setSize(this.vista.dkpEscritorio.getSize());
    }
    
    public void abrirVista(JInternalFrame new_vista) {
        this.vista.dkpEscritorio.add(new_vista);  
        new_vista.setVisible(true);
         try {
            new_vista.setMaximum(true);                       
        }catch (Exception e){            
        }
           
       // new_vista.setSize(this.vista.dkpEscritorio.getSize());
    }

   

    
   



 






}
